﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LCTMoodle.Models.ViewModels;
using LCTMoodle.Models.DataModels;

namespace LCTMoodle.Service
{
    public class KhoaHoc_ThanhVienService : Service
    {
        /// <summary>
        /// Lấy số lượng bài viết mới của khóa học của nhóm bài viết
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        /// <returns></returns>
        public static KhoaHoc_ThanhVienViewModel layKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVien(int maKhoaHoc, int maThanhVien)
        {
            return executeDataReader<KhoaHoc_ThanhVienViewModel>
                (
                    "layKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVien",
                    new object[]
                    {
                        maKhoaHoc,
                        maThanhVien
                    }
                );
        }
        /// <summary>
        /// Cập nhật thời điểm vào nhóm
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        /// <param name="nhomBaiViet">Tên nhóm</param>
        public static bool capNhatThoiDiemVaoKhoaHocTheoMaKhoaHocVaMaThanhVienVaTenNhom(int maKhoaHoc, int maThanhVien, string tenNhom)
        {
            return executeNonQuery
                (
                    "capNhatThoiDiemVaoKhoaHocTheoMaKhoaHocVaMaThanhVienVaTenNhom",
                    new object[]
                    {
                        maKhoaHoc,
                        maThanhVien,
                        tenNhom
                    }
                );
        }

        /// <summary>
        /// Thêm thành viên đăng ký vào nhóm
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        public static bool themKhoaHocThanhVien_DangKy(int maKhoaHoc, int maThanhVien)
        {
            return executeNonQuery
                (
                    "themKhoaHocThanhVien_DangKy",
                    new object[]
                    {
                        maKhoaHoc,
                        maThanhVien
                    }
                );
        }

        /// <summary>
        /// Xóa thành viên
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        public static bool xoaKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVien(int maKhoaHoc, int maThanhVien)
        {
            return executeNonQuery
                (
                    "xoaKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVien",
                    new object[]
                    {
                        maKhoaHoc,
                        maThanhVien
                    }
                );
        }

        /// <summary>
        /// Lấy những người dùng đăng ký vào khóa học 
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        public static List<KhoaHoc_ThanhVienViewModel> layNguoiDungDangKyKhoaHocTheoMaKhoaHoc(int maKhoaHoc)
        {
            return executeDataReader_List<KhoaHoc_ThanhVienViewModel>
                (
                    "layNguoiDungDangKyKhoaHocTheoMaKhoaHoc",
                    new object[]
                    {
                        maKhoaHoc
                    }
                );
        }

        /// <summary>
        /// Chấp nhận đăng ký
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        /// <param name="maThanhVienMoi">Mã thành viên mời</param>
        public static bool capNhatKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVienVaMaThanhVienMoi_ChapNhanDangKy(int maKhoaHoc, int maThanhVien, int maThanhVienMoi)
        {
            return executeNonQuery
                (
                    "capNhatKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVienVaMaThanhVienMoi_ChapNhanDangKy",
                    new object[]
                    {
                        maKhoaHoc,
                        maThanhVien,
                        maThanhVienMoi
                    }
                );
        }

        /// <summary>
        /// Chặn thành viên
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        /// <param name="maThanhVienMoi">Mã thành viên chặn</param>
        public static bool capNhatKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVienVaMaThanhVienMoi_ChanDangKy(int maKhoaHoc, int maThanhVien, int maThanhVienMoi)
        {
            return executeNonQuery
                (
                    "capNhatKhoaHocThanhVienTheoMaKhoaHocVaMaThanhVienVaMaThanhVienMoi_ChanDangKy",
                    new object[]
                    {
                        maKhoaHoc,
                        maThanhVien,
                        maThanhVienMoi
                    }
                );
        }

        /// <summary>
        /// Lấy danh sách thành viên
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <returns>Mã khóa học, mã thành viên, tên thành viên, mã thành viên mời, tên thành viên mời, ngày tham gia</returns>
        public static List<KhoaHoc_ThanhVienViewModel> layKhoaHocThanhVienTheoMaKhoaHoc(int maKhoaHoc)
        {
            return executeDataReader_List<KhoaHoc_ThanhVienViewModel>
            (
                "layKhoaHocThanhVienTheoMaKhoaHoc",
                new object[]
                {
                    maKhoaHoc
                }
            );
        }
    }
}